#ifndef _TABDYNENNEMI_H
#define _TABDYNENNEMI_H
#include "Ennemi.h"

struct sTabdynen
{
  unsigned int capacite;/**@brief la capacité total du tableau */
  unsigned int taille_utilisee;/**@brief la taille utilisee c'est à dire
                            le nombre d'ennemi dans le tableau*/
  Ennemi* ad;/**@brief ad est un pointeur sur ennemi,il sert à acceder aux
                ennemis dans le tableau*/
};
typedef struct sTabdynen TabDynEnnemi;

/**@brief  tabdynInit:
<B> Precondition : t non prealablement initialise
    Postcondition : t initialise a une alveole vide (taille utilisee nulle)   </B> */
void tabdynInit(TabDynEnnemi* );

/** @brief tabdynTestament:
<B> Precondition : t prealablement initialise
    Postcondition : t pret a disparaitre. La memoire allouee dynamiquement
   est liberee. On ne pourra plus appeler les sous-programmes qui
   necessitent que t soit initialise.   </B> */
void tabdynTestament(TabDynEnnemi* );

/** @brief tabdynAjouterEnnemi:
<B> Precondition : t prealablement initialise
    Postcondition : L'ennemi e est ajoute dans la premiere alveole inutilisee
   du tableau, la taille utilisee est incrementee de 1. Doublement de la
   capacite de t, si necessaire. </B> */
void tabdynAjouterEnnemi(TabDynEnnemi* ,const Ennemi* );

/** @brief tabdynSupprimerEnnemi:
<B> Precondition : t prealablement initialise et non vide
    Postcondition : la taille utilisee du tableau est decrementee de 1. Si
   tailleUtilisee < capacite/3, alors on divise la capacité par 2. </B> */
void tabdynSupprimerEnnemi(TabDynEnnemi* ,int position);

#endif
